home *** CD-ROM | disk | FTP | other *** search
- static char cnvttime_prog[] = "@(#)Zeitkonversionen";
- static char cnvttime_ver[] = "@(#)ver 1.00/kr ; 10.06.91";
- /* cnvttime Konvertieren von Zeitformaten
- **
- ** Autor Klaus Rath
- **
- ** Deklaration char *cnvttime(char *zeit, int dest_format, char *erg);
- **
- ** Übergabe Die Funktion erwartet einen String in einem der folgenden
- ** Formate :
- ** hh:mm[:ss] -- Formate 1,2
- ** hh.mm[.ss] -- Formate 3,4
- ** hhmm[ss] -- Datenbankformate 5,6
- ** sowie einen int-Wert, der das Ausgabeformat festlegt.
- ** ( siehe datum.h )
- **
- ** Rückgabe Zeiger auf ein char-Array, das ausreichend dimensioniert
- ** sein sollte, bzw. im Fehlerfall NULL.
- **
- ** Änderungen 1.00 ; 10.06.91
- ** - Erste Version
- */
-
- #include <stdio.h>
- #include <string.h>
- #ifdef __TURBOC__
- #define ANSI
- #define MSDOS
- #include <stdlib.h>
- #endif
- #include "datum.h"
-
- #ifdef ANSI
- char *cnvttime(char *tstring, int dest_format, char *erg)
- #else
- char *cnvttime(tstring,dest_format,erg)
- char *tstring;
- int dest_format;
- char *erg;
- #endif
- {
- char stunden_s[3],minuten_s[3],sekunden_s[3];
- int format;
-
- erg[0] = '\0';
-
- /* Überprüfung auf Gültigkeit bzw. Format :
- */
- format = checktime(tstring);
- if ( !format ) {
- return(NULL);
- }
-
- /* Falls Formate identisch sind, sind wir fertig :
- */
- if ( format == dest_format ) {
- return(tstring);
- }
-
- /* Format überprüfen und umkopieren :
- */
- if ( format >= 1 && format <= 4 ) {
- stunden_s[0] = tstring[0];
- stunden_s[1] = tstring[1];
- stunden_s[2] = '\0';
- minuten_s[0] = tstring[3];
- minuten_s[1] = tstring[4];
- minuten_s[2] = '\0';
- if ( format == 2 || format == 4 ) {
- sekunden_s[0] = tstring[6];
- sekunden_s[1] = tstring[7];
- sekunden_s[2] = '\0';
- }
- else {
- sekunden_s[0] = '0';
- sekunden_s[1] = '0';
- sekunden_s[2] = '\0';
- }
- } /* ENDE: Formate 1-4 */
- else if ( format == 5 || format == 6 ) { /* Datenbank-Format */
- stunden_s[0] = tstring[0];
- stunden_s[1] = tstring[1];
- stunden_s[2] = '\0';
- minuten_s[0] = tstring[2];
- minuten_s[1] = tstring[3];
- minuten_s[2] = '\0';
- if ( format == 6 ) {
- sekunden_s[0] = tstring[4];
- sekunden_s[1] = tstring[5];
- sekunden_s[2] = '\0';
- }
- else {
- sekunden_s[0] = '0';
- sekunden_s[1] = '0';
- sekunden_s[2] = '\0';
- }
- } /* ENDE: Datenbankformate 5 und 6 */
- else
- return(NULL);
- /* ENDE:if(Formatprüfung und Kopierung) */
-
- /* Umkopieren in das passende Format :
- */
-
- switch ( dest_format ) {
-
- case TI_HM_D:
- strcpy(erg,stunden_s);
- strcat(erg,":");
- strcat(erg,minuten_s);
- return(erg);
- case TI_HMS_D:
- strcpy(erg,stunden_s);
- strcat(erg,":");
- strcat(erg,minuten_s);
- strcat(erg,":");
- strcat(erg,sekunden_s);
- return(erg);
- case TI_HM_P:
- strcpy(erg,stunden_s);
- strcat(erg,".");
- strcat(erg,minuten_s);
- return(erg);
- case TI_HMS_P:
- strcpy(erg,stunden_s);
- strcat(erg,".");
- strcat(erg,minuten_s);
- strcat(erg,".");
- strcat(erg,sekunden_s);
- return(erg);
- case TI_HM_DB:
- strcpy(erg,stunden_s);
- strcat(erg,minuten_s);
- return(erg);
- case TI_HMS_DB:
- strcpy(erg,stunden_s);
- strcat(erg,minuten_s);
- strcat(erg,sekunden_s);
- return(erg);
-
- } /* ENDE: switch(dest_format) */
-
- return(NULL);
-
- } /* ENDE: cnvttime() */
-